package com.shihb.principle.liskov.improve;

/**
 *Description:里氏替换原则改进
 *改进的思路，把继承提高一个更继承的基类
 *打破原有的继承关系，如果要相互引用可以使用依赖，组合，聚合
 *Version:1.0.0
 *@author shihb
 *@date 2020/6/28 21:59
 */
public class Demo {

  public static void main(String[] args) {
    A a = new A();
    System.out.println("11-8="+a.function1(11,8));
    B b= new B();
    System.out.println("11-8="+b.function3(11,8));

  }

}
class Base{

}

class  A extends Base{
  public  int function1(int a,int b){
    return a-b;
  }
}

class B extends Base {
  // B 要用到A 用组合的形式
  private A a=new A();
  public  int function1(int c,int d){
    return c+d;
  }
  public  int function2(int c,int d ){
    return function1(c,d)*2;
  }
  public  int function3(int c,int d ){
    return a.function1(c,d);
  }
}
